package com.exam.teacher.service;

import com.exam.entity.*;
import com.exam.entity.dto.ScoreDto;
import com.exam.entity.dto.StudentDto;
import com.exam.entity.dto.TeacherDto;

public interface TeacherService {

    /**
     * 根据id来删除试卷
     * @param examCode
     * @return
     */
    ApiResult deleteExamById(Long examCode);

    /**
     * 修改试卷信息
     * @param examManage
     * @return
     */
    ApiResult updateExam(ExamManage examManage);

    /**
     * 添加考试信息
     * @param examManage
     * @return
     */
    ApiResult insertExamInfo(ExamManage examManage);

    /**
     * 查询所有的试卷id信息
     * @return
     */
    ApiResult getByPaperId();

    /**
     * 查询所有的题目
     * @param page
     * @param size
     * @return
     */
    ApiResult findAllAnswers(Integer page, Integer size);

    /**
     * 添加选择题并且添加试题管理
     * @param multiQuestion
     * @return
     */
    ApiResult addMultiQuestion(MultiQuestion multiQuestion);

    /**
     * 添加填空题并且添加试题管理
     * @param fillQuestion
     * @return
     */
    ApiResult addFillQuestion(FillQuestion fillQuestion);

    /**
     * 添加判断题并且添加试题管理
     * @param judgeQuestion
     * @return
     */
    ApiResult addJudgeQuestion(JudgeQuestion judgeQuestion);

    /**
     * 查询所有的学生信息
     * @param page
     * @param size
     * @return
     */
    ApiResult findAllStudent(Integer page, Integer size);

    /**
     * 根据学生id查询该学生所有的分数
     * @param scoreDto
     * @return
     */
    ApiResult findByStudentIdScore(ScoreDto scoreDto);

    /**
     * 学生管理编辑回显学生数据
     * @param studentDto
     * @return
     */
    ApiResult findByIdStudent(StudentDto studentDto);

    /**
     * 学生管理编辑插入学生数据
     * @param studentDto
     * @return
     */
    ApiResult updateStudent(StudentDto studentDto);

    /**
     * 根据id删除学生信息
     * @param studentId
     * @return
     */
    ApiResult deleteByIdStudent(Long studentId);

    /**
     * 添加学生
     * @param studentDto
     * @return
     */
    ApiResult insertStudent(StudentDto studentDto);

    /**
     * 查找所有的教师分页
     * @param page
     * @param size
     * @return
     */
    ApiResult findAllTeacher(Integer page, Integer size);

    /**
     * 教师管理编辑回显学生数据
     * @param teacherDto
     * @return
     */
    ApiResult findByIdTeacher(TeacherDto teacherDto);

    /**
     * 教师管理编辑插入教师数据
     * @param teacherDto
     * @return
     */
    ApiResult updateTeacher(TeacherDto teacherDto);

    /**
     * 根据id删除教师信息
     * @param teacherId
     * @return
     */
    ApiResult deleteByIdTeacher(Long teacherId);

    /**
     * 添加教师
     * @param teacherDto
     * @return
     */
    ApiResult insertTeacher(TeacherDto teacherDto);

}


